import { createPinia } from 'pinia'

// 自动导入所有 store modules
const modules = import.meta.glob('./modules/*.js', {eager: true})
let isInit = false

// 初始化store
export function initStore() {
    if (isInit) return
    isInit = true
    // 遍历所有模块并初始化
    for (const path in modules) {
        // 获取文件名作为store的key
        const name = path.replace(/(\.\/modules\/|\.js)/g, '')
        // 调用store模块的默认导出函数获取store实例
        store[name] = modules[path].default()
    }
}

// 创建store代理对象
const store = new Proxy({}, {
    get(target, property) {
        if (target[property] === undefined) initStore()
        return target[property]
    }
})

export const pinia = createPinia()
export default store
